home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 25 / AMIGAplus Sonderheft 25 (2000)(Falke)(DE)(Track 1 of 4)[!].iso / Rexx / SaveAnimGif.pprx < prev    next >
Text File  |  2000-05-08  |  18KB  |  641 lines

  1. /* Personal Paint Amiga Rexx script - Copyright © 1996, 1997 Cloanto Italia srl */
  2.  
  3. /* $VER: SaveAnimGif.pprx 1.7 */
  4.  
  5. /** ENG
  6.  This script saves the current anim-brush as a GIF animation file. Specific
  7.  features of the GIF animation specification can be set through a requester.
  8.  
  9.  This script checks for the differences between frames and only stores
  10.  the smallest rectangular region containing changes. Other techniques
  11.  are employed for additional compression. The resulting GIF animations are
  12.  highly optimized and occupy considerably less space than GIF animations
  13.  created with other tools available on the Amiga.
  14.  
  15.  The "Use Loop" option inserts an "Application Extension Block" into the GIF
  16.  file (as implemented by Netscape in its Navigator software from version 2).
  17.  This additional block, which is interpreted by most other browsers
  18.  supporting GIF animations, specifies that the animation be repeated as many
  19.  times as indicated by the "Loop" value. A value of 0 expressly means
  20.  "loop continuously".
  21.  
  22.  The list of frames shows the timing value for each frame, in seconds/100.
  23.  These values can be selected, edited and applied to one or more frames.
  24.  Alternatively, the timing can be copied automatically from the current
  25.  animation. If this option is selected ("From Animation"), then the
  26.  "Delay" value is used to indicate from which animation frame the timing
  27.  values are to be copied.
  28.  
  29.  The "Transparency" setting indicates the current transparency status of
  30.  the anim-brush. If transparency is not required by the animation, it is
  31.  recommended to leave this option disabled.
  32.  
  33.  Note: an "anim-brush" is a part of a full-screen animation. It can be
  34.  either loaded or defined manually after clicking three times on the
  35.  Define Brush tool.
  36. */
  37.  
  38. /** DEU
  39.  Dieses Skript dient zum Speichern des aktuellen Anim-Brushes als
  40.  GIF-Animation. Eine Reihe spezifischer Merkmale des Animationsformats läßt
  41.  sich in einem dazugehörigen Dialogfenster auswählen.
  42.  
  43.  Nach der Skriptausführung werden zwei aufeinanderfolgende Frames zunächst
  44.  auf Unterschiede untersucht. Gespeichert wird dann nur der kleinste
  45.  rechteckige Bereich, der Unterschiede zwischen den beiden Bildern aufweist.
  46.  Außerdem werden zum Erzielen einer weiter verbesserten Komprimierung noch
  47.  andere Verfahren angewendet. Die daraus resultierenden hochoptimierten
  48.  GIF-Animationen benötigen erheblich weniger Speicherplatz als solche, die
  49.  mit anderen für den Amiga erhältlichen Tools erstellt worden sind.
  50.  
  51.  Durch die Option "Schleife aktiv:" wird der GIF-Datei eine
  52.  Programmerweiterung ("Application Extension Block") hinzugefügt, wie sie von
  53.  Netscape im Navigator ab Version 2 implementiert ist. Dieser auch von den
  54.  meisten anderen Browsern, die GIF-Animationen unterstützen, interpretierte
  55.  Block legt fest, daß die Animation so oft wiederholt wird, wie unter
  56.  "Schleife:" angegeben. Ein Wert von 0 bewirkt das Abspielen in einer
  57.  Endlosschleife.
  58.  
  59.  Die Frameliste zeigt den Timingwert für jedes Einzelbild in Hundertstel
  60.  Sekunden. Diese Werte lassen sich auswählen, bearbeiten und anschließend
  61.  einem oder mehreren Einzelbildern zuweisen. Alternativ dazu können die
  62.  Timingwerte automatisch aus der aktuellen Animation kopiert werden. Wenn die
  63.  entsprechende Option aktiviert ist ("Von Animation"), wird der
  64.  "Verzögerung"-Wert verwendet, um anzuzeigen, von welchem Einzelbild der
  65.  Animation die Timingwerte kopiert werden sollen.
  66.  
  67.  Die "Transparenz"-Einstellung gibt den aktuellen Transparenzstatus des
  68.  Animationspinsels wieder. Erfordert die Animation keine Transparenz, so wird
  69.  empfohlen, diese Option ausgeschaltet zu lassen.
  70.  
  71.  Hinweis: Ein Animationspinsel ist ein Bestandteil einer normalen Animation.
  72.  Er läßt sich nach einem Dreifachklick auf das Pinseldefinitionswerkzeug
  73.  entweder laden oder manuell definieren.
  74. */
  75.  
  76. /** ITA
  77.  Questo script salva l'anim-brush corrente come un'animazione GIF. Si possono
  78.  impostare le caratteristiche peculiari di una animazione GIF tramite una
  79.  apposita finestra di dialogo.
  80.  
  81.  Questo script controlla eventuali differenze tra fotogrammi e salva solo
  82.  la più piccola regione rettangolare che contiene modifiche. Altre tecniche
  83.  sono utilizzate per una compressione aggiuntiva. Le animazioni GIF risultanti
  84.  sono altamente ottimizzate ed occupano molto meno spazio di quelle create con
  85.  altri programmi disponibili su Amiga.
  86.  
  87.  L'opzione "Usare ciclo" inserisce un "Application Extension Block" nel file GIF
  88.  (come implementato da Netscape nel suo programma Navigator a partire dalla
  89.  versione 2). Questo blocco aggiuntivo, che viene interpretato dalla maggior
  90.  parte degli altri programmi di navigazione che permettono l'uso di animazioni
  91.  GIF, specifica che l'animazione deve essere ripetuta tante volte quante
  92.  indicato dal valore "Ciclo". Un valore pari a 0 significa espressamente
  93.  "ciclo continuo".
  94.  
  95.  L'elenco dei fotogrammi mostra il valore di temporizzazione per ciascun
  96.  fotogramma, in centesimi di secondo. Tali valori possono essere selezionati,
  97.  modificati e applicati a uno o più fotogrammi. In alternativa, la
  98.  temporizzazione può essere copiata automaticamente dall'animazione corrente.
  99.  Se questa opzione è attiva ("Da animazione"), si usa il valore di
  100.  "Temporizzazione fotogrammi" per indicare da quale fotogramma dell'animazione
  101.  si devono copiare i valori di temporizzazione.
  102.  
  103.  L'impostazione di "Trasparenza" indica lo stato attuale della trasparenza
  104.  dell'anim-brush. Se l'animazione non richiede la trasparenza, è consigliabile
  105.  lasciare disattivata questa opzione.
  106.  
  107.  Nota: un "anim-brush" è un pennello, e come tale in genere una (più piccola)
  108.  parte di un'animazione a tutto schermo. Un anim-brush può essere caricare,
  109.  oppure definito manualmente facendo click tre volte sullo strumento
  110.  Definire pennello.
  111. */
  112.  
  113. IF ARG(1, EXISTS) THEN
  114.     PARSE ARG PPPORT
  115. ELSE
  116.     PPPORT = 'PPAINT'
  117.  
  118. IF ~SHOW('P', PPPORT) THEN DO
  119.     IF EXISTS('PPaint:PPaint') THEN DO
  120.         ADDRESS COMMAND 'Run >NIL: PPaint:PPaint'
  121.         DO 30 WHILE ~SHOW('P',PPPORT)
  122.              ADDRESS COMMAND 'Wait >NIL: 1 SEC'
  123.         END
  124.     END
  125.     ELSE DO
  126.         SAY "Personal Paint could not be loaded."
  127.         EXIT 10
  128.     END
  129. END
  130.  
  131. IF ~SHOW('P', PPPORT) THEN DO
  132.     SAY 'Personal Paint Rexx port could not be opened'
  133.     EXIT 10
  134. END
  135.  
  136. ADDRESS VALUE PPPORT
  137. OPTIONS RESULTS
  138. OPTIONS FAILAT 10000
  139.  
  140. Get 'LANG'
  141. IF RESULT = 1 THEN DO        /* Deutsch */
  142.     txt_title_req     = 'GIF-Anim-Brush speichern'
  143.     txt_title_set     = 'GIF-Anim-Brush-Einstellungen'
  144.     txt_title_delay   = 'Frame-Verzögerung'
  145.     txt_gad_delay     = 'Frame-Verzögerungen:'
  146.     txt_gad_annot     = '_Bemerkung:'
  147.     txt_gad_loop      = '_Schleife:'
  148.     txt_gad_useloop   = 'Schleife ak_tiv:'
  149.     txt_gad_transp    = '_Transparenz:'
  150.     txt_gad_del       = '_Verzögerung:'
  151.     txt_gad_deltype   = ' '
  152.     txt_gad_deltype0  = '1/100\""'
  153.     txt_gad_deltype1  = 'Von Animation'
  154.     txt_gad_from      = 'A_b Frame:'
  155.     txt_gad_to        = 'Bi_s Frame:'
  156.     txt_err_oldclient = 'Für dieses Skript_ist eine neuere Version_von Personal Paint erforderlich'
  157.     txt_err_oldlib    = 'Für dieses Skript ist eine neuere Version_der GIF library erforderlich'
  158.     txt_err_notabsh   = 'Aktueller Brush_ist kein Anim-Brush'
  159.     txt_err_notemp    = 'Zu wenig Speicher_für temporären Brush'
  160.     txt_err_nomem     = 'Speichermangel'
  161.     txt_err_nosave    = 'Fehler bei Datei-Ein-/Ausgabe'
  162. END
  163. ELSE IF RESULT = 2 THEN DO    /* Italiano */
  164.     txt_title_req     = 'Scrivere Anim-brush GIF'
  165.     txt_title_set     = 'Parametri Anim-brush GIF'
  166.     txt_title_delay   = 'Temporizzazione'
  167.     txt_gad_delay     = 'Temporizzazione fotogrammi:'
  168.     txt_gad_annot     = '_Note:'
  169.     txt_gad_loop      = 'Cic_lo:'
  170.     txt_gad_useloop   = '_Usare ciclo:'
  171.     txt_gad_transp    = '_Transparenza:'
  172.     txt_gad_del       = '_Temporizzazione:'
  173.     txt_gad_deltype   = ' '
  174.     txt_gad_deltype0  = '1/100\""'
  175.     txt_gad_deltype1  = 'Da animazione'
  176.     txt_gad_from      = 'Da _fotogramma:'
  177.     txt_gad_to        = 'A f_otogramma:'
  178.     txt_err_oldclient = 'Questa procedura richiede_una versione più recente_di Personal Paint'
  179.     txt_err_oldlib    = 'Questa procedura richiede_una versione più recente_della libreria GIF'
  180.     txt_err_notabsh   = 'Il pennello attuale_non è un anim-brush'
  181.     txt_err_notemp    = 'Impossibile creare_pennello temporaneo'
  182.     txt_err_nomem     = 'Memoria insufficiente'
  183.     txt_err_nosave    = 'Errore di scrittur